home *** CD-ROM | disk | FTP | other *** search
- Modula-2 code for seven communication protocols
-
- This package contains JPI TopSpeed Modula-2 code that I have
- developed for these error-checking protocols: XModem, XModem-1K,
- YModem, Telink, ZModem, CompuServe B Plus, Kermit.
- While I assembled them, I cannot by any means take credit
- for the whole job. I studied and in many cases borrowed code
- from other sources; this is especially the case for the
- CompuServe B-Plus protocol, which is largely derived from Russ
- Ranshaw's Turbo Pascal source.
- I assembled all of these modules for my own communications
- program, QC, which runs on the DEC Rainbow 100 computer. But
- the purpose of this package is to make the protocol code
- available in as generic a form as possible, so I am excluding
- any Rainbow-specific code, leaving only the definition modules
- that you will need to write your own code. I am, however,
- including some of the more generic libraries of code used by
- these protocols.
-
- First the generic libraries:
- FIOASM.A These are generic MS-DOS File IO libraries.
- FIOASM.DEF I used assembly code to make them faster than
- NFIO.DEF JPI's libraries. NFIO is abridged to include
- NFIO.MOD only the procedures used by the other modules
- in this package
-
- CRC.A This module computes cyclic redundancy checks
- CRC.DEF and check sums for blocks of data.
-
- MISCASM.DEF These are a bunch of INLINE procedures. No
- implementation module is necessary in JPI TopSpeed
- Modula-2, version 2.
-
- PATHFIND.DEF Procedures for finding and parsing file names.
- PATHFIND.MOD One procedure, FileTree, creates a directory of
- file names in the form of a linked list.
-
- UTIL.DEF Definitions of strings and character sets.
- No implementation module required
-
- You'll have to write these yourself:
- COM.DEF Low-level communication procedures
- QCCOMM.DEF Higher level communication procedures
- QCDISP.DEF Data display procedures
- QCSHELL.DEF Procdures involving shelling to DOS for CompuServe
- GIF transfers.
- TIMER.DEF Low-level timers and a Delay procedure. (If you
- are programming for IBM compatibles, you can use
- JPI's Lib.Delay.)
-
- Here are the protocols themselves:
-
- QCBPLUS.DEF CompuServe B Plus. Includes GIF files.
- QCBPLUS.MOD
-
- QCKERMIT.DEF Kermit
- QCKERMIT.MOD
- QCKPACK.DEF Low-level Kermit procedures
- QCKPACK.MOD
-
- QCXM.DEF XModem, XModem-1K, YModem, Telink
- QCXM.MOD
- QCXMZERO.DEF "Zero-block" handling for YModem, Telink, ZModem
- QCXMZERO.MOD
-
- QCZM.DEF ZModem
- QCZM.MOD
-
- Finally a protocol handler:
- QCPROTO.DEF This package processes common requests to upload
- QCPROTO.MOD or download files for all except CompuServe B
- Plus.
-
- -- For downloads, it asks which directory to put the files in.
-
- -- For uploads, it constructs a linked directory. It does
- so with this prompt:
-
- 'Enter file(s) to send or "/" + batch list file or Return to abort:'
-
- If the user enters an ordinary file name, it is treated
- as a file mask; for example, *.ZIP would create a linked
- list of all .ZIP files.
-
- A file name preceded by a slash is interpreted as a batch
- file, an ASCII file listing the files to be sent.
- File names in the list file can include wild cards.
-
- I'm giving all this stuff away. If its helpful to you, great. If
- I made some mistakes, consider it a challenge to find the bugs. If you
- need to reach me, I've tried to include my name and address in all the
- code. Here it is:
-
- Carl Neiburger
- 169 N. 25th St.
- San Jose, Calif. 95116
-
- CompuServe No. 72336,2257
-